package com.wangkm.roomdemo

import android.arch.persistence.room.Room
import android.content.Context

/**
 * @author: created by wangkm
 * @Time: 2020/9/15 17:42
 * @Des： $
 * @Email: 1240413544@qq.com
 */
object YxDatabase {

    private var mAppDatabase: AppDatabase? = null

    fun getAppDatabase(context: Context): AppDatabase {
        if (mAppDatabase == null) {
            synchronized(App::class.java) {
                if (mAppDatabase == null) {
                    mAppDatabase = Room.databaseBuilder(context,
                            AppDatabase::class.java, "roomDemo-database") //添加数据库的变动迁移支持(当前状态从version1到version2的变动处理)
                            //主要在user里面加入了age字段,大家可以git reset --hard <commit> 到第一个版本
                            //然后debug 手动生成一些数据。然后debug 该版本查看数据库升级体现。
                            .addMigrations(AppDatabase.MIGRATION_1_2) //下面注释表示允许主线程进行数据库操作，但是不推荐这样做。
                            //他可能造成主线程lock以及anr
                            //.allowMainThreadQueries()
                            .build()
                }
            }

        }
        return mAppDatabase!!
    }
}